struct _MI_HARDWARE_STATE// Size=0xc8
{
    unsigned long NodeMask;// Offset=0x0 Size=0x4
    unsigned long NumaLastRangeIndex;// Offset=0x4 Size=0x4
    unsigned char NumaTableCaptured;// Offset=0x8 Size=0x1
    unsigned char NodeShift;// Offset=0x9 Size=0x1
    unsigned char ChannelShift;// Offset=0xa Size=0x1
    unsigned short * NodeGraph;// Offset=0xc Size=0x4
    struct _MI_SYSTEM_NODE_INFORMATION * SystemNodeInformation;// Offset=0x10 Size=0x4
    struct _HAL_NODE_RANGE * NumaMemoryRanges;// Offset=0x14 Size=0x4
    struct _HAL_CHANNEL_MEMORY_RANGES * ChannelMemoryRanges;// Offset=0x18 Size=0x4
    unsigned long SecondLevelCacheSize;// Offset=0x1c Size=0x4
    unsigned long FirstLevelCacheSize;// Offset=0x20 Size=0x4
    unsigned long PhysicalAddressBits;// Offset=0x24 Size=0x4
    unsigned long TotalPagesAllowed;// Offset=0x28 Size=0x4
    unsigned long SecondaryColorMask;// Offset=0x2c Size=0x4
    unsigned long SecondaryColors;// Offset=0x30 Size=0x4
    unsigned long long InvalidPteMask;// Offset=0x38 Size=0x8
    unsigned long FlushTbForAttributeChange;// Offset=0x40 Size=0x4
    unsigned long FlushCacheForAttributeChange;// Offset=0x44 Size=0x4
    unsigned long FlushCacheForPageAttributeChange;// Offset=0x48 Size=0x4
    unsigned long CacheFlushPromoteThreshold;// Offset=0x4c Size=0x4
    unsigned long FlushTbThreshold;// Offset=0x50 Size=0x4
    enum _MI_PFN_CACHE_ATTRIBUTE OptimalZeroingAttribute[4][4];// Offset=0x54 Size=0x40
    unsigned char AttributeChangeRequiresReZero;// Offset=0x94 Size=0x1
    struct _MI_ZERO_COST_COUNTS ZeroCostCounts[2];// Offset=0x98 Size=0x20
    unsigned long HighestPossiblePhysicalPage;// Offset=0xb8 Size=0x4
    struct _RTL_AVL_TREE EnclaveRegions;// Offset=0xbc Size=0x4
    unsigned long VsmKernelPageCount;// Offset=0xc0 Size=0x4
};